package com.wwz.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;

import java.util.List;

/**
 * <p>Description:删除已经部署的流程定义信息</p >
 * 影响的表
 *       ACT_RE_PROCDEF
 *       ACT_RE_DEPLOYMENT
 *       ACT_GE_BYTEARRAY
 * <p>Copyright: Copyright (c)2021</p >
 * <P>Created Date :2021-04-07</P>
 * <P>@version 1.0</P>
 */
public class DeleteProcessDefinition {
    /*
    1.当我们正在执行的这一套流程还没有走完审批时，此时删除流程定义会失败。
    2.如果公司要求必须删除，可以级联删除。repositoryService.deleteDeployment("1",true); true代表级联删除，此时就会先删除没有完成的流程节点，最后就可以删除流程定义信息。
     */
    public static void main(String[] args) {
        //1.得到ProcessEngine对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

        //2.创建repositoryService对象
        RepositoryService repositoryService = processEngine.getRepositoryService();

        //3.执行删除流程定义   参数：流程部署id
        repositoryService.deleteDeployment("1");


    }
}
